/*
 * 本地图片转Base64编码
 * @Author zhao
 * @Date 2020/11/23
 * @remark 微信小程序background-image不支持设置本地图片，支持base64
 */
function imgToBase64(path) {
	return new Promise((resolve, reject) => {
		uni.getFileSystemManager().readFile({
			filePath: path,
			encoding: 'base64',
			success: (res) => {
				resolve('data:image/jpeg;base64,' + res.data);
			},
			fail: (err) => {
				reject(err);
			}
		})
	})
}

function showErrorMsg(msg, callback) {
	wx.showModal({
		title: '提示',
		showCancel: false,
		content: msg,
		success: function(res) {
			if (callback)
				callback();
		}
	});
}

function showMsg(msg, url) {
	wx.showToast({
		title: msg,
		icon: '', //图标，支持"success"、"loading" 
		image: '', //自定义图标的本地路径，image 的优先级高于 icon
		duration: 1500, //提示的延迟时间，单位毫秒，默认：1500 
		mask: false, //是否显示透明蒙层，防止触摸穿透，默认：false 
		success: function() {
			if (url && url !== '') {
				setTimeout(() => {
					wx.switchTab({
						url: url
					})
				}, 1000)
			}
		}
	})
}

function showMsgToTabbar(msg, url, that) {
	wx.showToast({
		title: msg,
		icon: '', //图标，支持"success"、"loading" 
		image: '', //自定义图标的本地路径，image 的优先级高于 icon
		duration: 1500, //提示的延迟时间，单位毫秒，默认：1500 
		mask: false, //是否显示透明蒙层，防止触摸穿透，默认：false 
		success: function() {
			setTimeout(() => {
				that.uniAPI.nav('switchTab', url);
			}, 1000)
		}
	})
}

function showMsgNoIcon(msg, url) {
	wx.showToast({
		title: msg,
		icon: 'none',
		duration: 1500, //提示的延迟时间，单位毫秒，默认：1500 
		mask: false, //是否显示透明蒙层，防止触摸穿透，默认：false 
		success: function() {
			if (url && url !== '') {
				setTimeout(() => {
					wx.switchTab({
						url: url
					})
				}, 1000)
			}
		}
	})
}

function showMsgAndBack(msg) {
	wx.showToast({
		title: msg,
		icon: '', //图标，支持"success"、"loading" 
		image: '', //自定义图标的本地路径，image 的优先级高于 icon
		duration: 1500, //提示的延迟时间，单位毫秒，默认：1500 
		mask: false, //是否显示透明蒙层，防止触摸穿透，默认：false 
		success: function() {
			setTimeout(() => {
				wx.navigateBack({
					delta: 1
				});
			}, 1000)
		}
	})
}

function isNumber(str) {
	var numReg = /^[0-9]*$/;
	var numRe = new RegExp(numReg);
	return numRe.test(str);
}

//是否是正整数
function isUnsignedInteger(str) {
	var numReg = /^\d+$/;
	var numRe = new RegExp(numReg);
	return numRe.test(str);
}

//检测变量是否正浮点数
function isDecimal(a) {
	if (a == '0')
		return true;
	else {
		var reg = /^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
		return (reg.test(a));
	}
}

function getCurrentData(addDay) {
	var dt = new Date();
	if (addDay)
		dt.setDate(dt.getDate() + addDay);
	const year = dt.getFullYear();
	const month = dt.getMonth() + 1;
	var day = dt.getDate();
	return [year, month, day].map(formatNumber).join('-');
}

function timestampToTime(timestamp) {
	var date = new Date(timestamp); //时间戳为10位需*1000，时间戳为13位的话不需乘1000
	let Y = date.getFullYear() + '-';
	let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
	let D = date.getDate();
	return Y + M + D;
}

//制保留2位小数，如：2，会在2后面补上00.即2.00 
function toDecimal2(x) {
	var f = parseFloat(x);
	if (isNaN(f)) {
		return false;
	}
	var f = Math.round(x * 100) / 100;
	var s = f.toString();
	var rs = s.indexOf('.');
	if (rs < 0) {
		rs = s.length;
		s += '.';
	}
	while (s.length <= rs + 2) {
		s += '0';
	}
	return s;
}

const formatNumber = n => {
	n = n.toString();
	return n[1] ? n : '0' + n;
}

function isNullOrEmpty(obj) {
	return (obj == null || obj == '')
}

export default {
	imgToBase64,
	showErrorMsg,
	showMsg,
	isNumber,
	showMsgAndBack,
	showMsgNoIcon,
	getCurrentData,
	isUnsignedInteger,
	isDecimal,
	toDecimal2,
	timestampToTime,
	showMsgToTabbar,
	isNullOrEmpty
}
